using Engine;
using GameEntitySystem;

namespace Game
{
	public interface IInventory
	{
		Project Project { get; }

		int SlotsCount { get; }

		int VisibleSlotsCount { get; set; }

		int ActiveSlotIndex { get; set; }

		int GetSlotValue(int slotIndex);

		int GetSlotCount(int slotIndex);

		int GetSlotCapacity(int slotIndex, int value);

		int GetSlotProcessCapacity(int slotIndex, int value);

		void AddSlotItems(int slotIndex, int value, int count);

		void ProcessSlotItems(int slotIndex, int value, int count, int processCount, out int processedValue, out int processedCount);

		int RemoveSlotItems(int slotIndex, int count);

		void DropAllItems(Vector3 position);
	}
}
